/**
 * 用户相关 API
 */
import { get, post, put, uploadFile, del } from '../utils/request';
import { BASE_URL } from '../constants';

/**
 * 获取当前用户信息
 * @returns Promise
 */
export function getUserInfo() {
  return get(`${BASE_URL}/users/current`);
}

/**
 * 更新用户信息
 * @param data 用户信息
 * @returns Promise
 */
export function updateUserInfo(data: any) {
  return put(`${BASE_URL}/users/${data.id}`, data);
}

/**
 * 获取用户地址列表
 * @returns Promise
 */
export function getUserAddresses() {
  return get(`${BASE_URL}/user/addresses`);
}

/**
 * 添加用户地址
 * @param data 地址信息
 * @returns Promise
 */
export function addUserAddress(data: any) {
  return post(`${BASE_URL}/user/address`, data);
}

/**
 * 更新用户地址
 * @param id 地址ID
 * @param data 地址信息
 * @returns Promise
 */
export function updateUserAddress(id: string, data: any) {
  return put(`${BASE_URL}/user/address/${id}`, data);
}

/**
 * 删除用户地址
 * @param id 地址ID
 * @returns Promise
 */
export function deleteUserAddress(id: string) {
  return post(`${BASE_URL}/user/address/${id}/delete`);
}

/**
 * 上传用户头像
 * @param filePath 文件路径
 * @param oldAvatarUrl 旧头像URL（可选）
 */
export function uploadAvatar(filePath: string, oldAvatarUrl?: string) {
  const formData: Record<string, any> = {};
  if (oldAvatarUrl) {
    formData.oldAvatarUrl = oldAvatarUrl;
  }
  
  return uploadFile(
    `${BASE_URL}/files/avatar`,
    filePath,
    'file',
    formData,
    {
      loadingText: '上传中...',
      errorTitle: '上传失败',
      retry: 1
    }
  );
}

export default {
  getUserInfo,
  updateUserInfo,
  getUserAddresses,
  addUserAddress,
  updateUserAddress,
  deleteUserAddress,
  uploadAvatar
}; 